package pe.edu.upc.e41a.javasoft.service;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import pe.edu.upc.e41a.javasoft.dao.AvisoDao;
import pe.edu.upc.e41a.javasoft.dao.CategoriaDao;
import pe.edu.upc.e41a.javasoft.domain.Aviso;
import pe.edu.upc.e41a.javasoft.domain.Categoria;

@Service
@Transactional
public class AvisoServiceImpl implements AvisoService{
	
	@Resource
	private AvisoDao avisoDao;

	@Override
	public String registrarAviso(Aviso aviso) {
		String mensaje =null;
		try {
			if(aviso.getTitulo()==null){
				mensaje = "Ingrese el título del aviso.";
				return mensaje;
			}else if(aviso.getMensaje()==null){
				mensaje = "Ingrese el mensaje a mostrar.";
				return mensaje;
			}else if(aviso.getPosicion()==null){
				mensaje = "Ingrese la ubicacion donde se mostrará el aviso.";
				return mensaje;
			}else if(aviso.getUsuario()==null){
				mensaje = "Ingrese sesion como administrador.";
				return mensaje;
			}else if(aviso.getFechaInicio()==null){
				mensaje = "Ingrese la fecha de inicio para el aviso.";
				return mensaje;
			}else if(aviso.getFechaFin()==null){
				mensaje = "Ingrese la fecha de fin para el aviso.";
				return mensaje;
			}else if(!aviso.getFechaFin().after(aviso.getFechaInicio())){
				mensaje = "La fecha de fin debe ser mayor a la fecha de inicio.";
				return mensaje;
			}
				
			avisoDao.grabarAviso(aviso);	
			mensaje="El aviso se registró exitosamente.";
		} catch (Exception e) {
			mensaje="Error al registrar el aviso.";
			return mensaje;
		}
		
		return mensaje;
	}

	@Override
	public List<Aviso> mostrarAvisos(Date fecha, int posicion) {
		List<Aviso> listAviso;
		listAviso = avisoDao.buscarAvisoPorFechayPosicion(fecha, posicion);
		return listAviso;
	}
	

}
